//该文件为入口文件

/**
 * 1、项目初始化
 * 2、设置.gitignore
 * 3、设置入口文件
 * 4、配置 express模块
 *      创建服务器并启动(配置nodemon自动启动服务器！)
 * 5、设置路由器
 *      配置body-parser 跨域cors 静态文件托管
 *  到这一步服务其这一部分算是完成，接下来是服务器与数据库的练习
 * 6、创建db 将数据库与服务器建立联系
 * 7、创建约束条件、模型对象
 * 8、在路由器中实现在服务器上对数据库的增删改查
 */

//引入express模块
const express = require('express');
//引入body-parser 为了解析req.body
const bodyParser = require('body-parser');
//引入cors 解决跨域
const cors = require('cors');
//引入连接  服务器与数据库
const db = require('./db/database');
//创建服务器对象
const app = express();

//解决跨域
app.use(cors());
//静态文件托管
app.use(express.static('public'));

//解析 将post请求的数据挂载req.body上
app.use(bodyParser.urlencoded({extended:true}));

//引入路由器
const users = require('./router/users');
//设置全局中间件  优化处理 目的是为了确保在连接成功的状态下进行
app.post('/',async(req,res,next)=>{
    //服务器与数据库连接有可能成功，有可能失败
    try{
        await db;
        next();
    }catch(e){
        console.log(e);
        res.send('服务器与数据库连接失败！');
    }
})
//运用路由器
app.use(users);

//启动服务器
app.listen(3030,err=>{
    if(!err) console.log('服务器启动成功！');
    else console.log(err);
})